perm filename ASDACT[PIC,LCS]1 blob sn#039043 filedate 1973-12-30 generic text, type T, neo UTF8
	TITLE  ASD
	ENTRY ASD
	EXTERNAL ALLIO.	
M1:	MOVE L
	JUMPGE M2
	JRST M3
M2:	AOS C
	MOVE P
	MOVE 1,C
	MOVEM I(1)
	MOVE A
	MOVE 1,C
	MOVEM PO+5(1)
	MOVE R
	MOVE 2,2(16)
	TLNN 2,40
	TLNN 2,100
	JSA 16,FLOAT
	JUMP 0,R
	MOVE 1,C
	MOVEM AL+5(1)
	MOVE P
	JUMPL P2
	MOVEI 6
	CAMG C
	JRST P1
	JRST M3
P1:	JRST P2
	ASCII	/(6(1X,I1,A5,1H=2PE12.5))/
P2:	MOVEI 1,P1
	OUT. 1,-3
	MOVEI 15,1
M8:	MOVEM 15,I
	MOVE 1,I
	DATA. I(1)
	DATA. 2,PO+5(1)
	DATA. 2,AL+5(1)
	CAIGE 15,6
	AOJA 15,M8
	FIN. 0
	SETZM C
	MOVEI 15,1
	MOVEM 15,I
M11:	SETZM I(15)
	SETZM PO+5(15)
	SETZM AL+5(15)
	CAIGE 15,6
	AOJA 15,M11
M3:	MOVSI 16,TEMP.
	BLT 16,16
	JRA 16,3(16)
ASD:	JUMP 0
	MOVEI TEMP.
	BLT TEMP.+16
	MOVEI TEMP.+16
	PUSH @0(16)
	PUSH @1(16)
	PUSH @2(16)
	JRST M1
TEMP.:	BLOCK 17
P:	0
A:	0
R:	0
L:	0
C:	0
X:	0
I:	0
PO:	BLOCK 6
AL:	BLOCK 6
RE:	BLOCK 6
	EXTERNAL FLOAT
	EXTERNAL FLOUT.
	END
00100		SUBROUTINE ACTES(RO,D,V1,V2)
00150
00200		DIMENSION DIF(-1/1),Z(1783)
00250
00300		REAL D,DP,DEN,DIF,F1,F2,F3,F4,F5,F6,F7,
00350		1 G1,G2,G6,CL,SL,CW,SW,COH,
00400		1 RO,ROP,RO2,VAR,V1,V2,V1P,V2P,V,T,
00480		1 A0,A1,A2,A3,A4,A5,A6,A7,
00485		1 B0,B1,B2,B3,B4,B5,B6,B7
00490
00500		INTEGER I,K
00550
00600		COMMON /EDGEC/ B0,B1,B2,B3,B4,B5,B6,B7,Z
00620
00625		G1=.4082483
00628		G2=.7071068
00631		G6=.5773503
00634		A1=B1/G1
00637		A2=B2/G2
00640		A3=B3/G2
00643		A4=B4/G2
00646		A5=B5/G2
00649		A6=B6/G6
00650		A7=B7/G6
00675		VAR=0.03
00750
00800		DO 60 K=1,3
00900		DO 40 I=-1,1
01000		IF(I.EQ.0 .AND. K.GT.1) GOTO 40
01025
01030		ROP=RO
01032		DP=D
01034		CL=V1
01036		SL=V2
01039
01050		IF(K.NE.1) GOTO 10
01100		V1P=V1-V2*I*VAR
01200		V2P=V2+V1*I*VAR
01240		V=SQRT(V1P**2+V2P**2)
01245		CL=V1P/V
01250		SL=V2P/V
01300		GOTO 30
01400	10	IF(K.NE.2) GOTO 20
01500		DP=D*(1.+I*VAR)
01600		GOTO 30
01700	20	ROP=RO+I*VAR
01750
01800	30	RO2=ROP**2
01900		DEN=1.+2.*RO2
01950		SW=2.8284272*ROP/DEN
02000		CW=(1.-2.*RO2)/DEN
02050		T=DP*0.76749504*(1.-RO2)**2*DEN
02100		F1=G1*T*SW
02150		F2=G2*T*CL
02200		F3=G2*T*SL
02250		F4=G2*T*CL*CW
02300		F5=G2*T*SL*CW
02350		F6=G6*T*(CL**2-SL**2)*SW
02400		F7=G6*T*2.*SL*CL*SW
02500
02510		IF(I.NE.0) GOTO 35
02520		CALL ASD(4,'A1',A1)
02530		CALL ASD(4,'F1',F1)
02540		CALL ASD(4,'A2',A2)
02550		CALL ASD(4,'A3',A3)
02560		CALL ASD(4,'A4',A4)
02570		CALL ASD(4,'A5',A5)
02580		CALL ASD(4,'A6',A6)
02590		CALL ASD(4,'A7',A7)
02600		CALL ASD(4,'F2',F2)
02610		CALL ASD(4,'F3',F3)
02620		CALL ASD(4,'F4',F4)
02630		CALL ASD(4,'F5',F5)
02640		CALL ASD(4,'F6',F6)
02650		CALL ASD(4,'F7',F7)
02700		COH=(A1*F1+A2*F2+A3*F3+A4*F4+A5*F5+A6*F6+A7*F7)/
02710		1 SQRT((A1**2+A2**2+A3**2+A4**2+A5**2+A6**2+A7**2)*
02720		2 (F1**2+F2**2+F3**2+F4**2+F5**2+F6**2+F7**2))
02730		CALL ASD(4,'COH',COH)
03000
03100	35	DIF(I)=(A1-F1)**2+(A2-F2)**2+(A3-F3)**2+
03200		1 (A4-F4)**2+(A5-F5)**2+(A6-F6)**2+(A7-F7)**2
03225	40	CONTINUE
03250
03260		IF(DIF(0).GT.DIF(-1).OR.DIF(0).GT.DIF(1)) GOTO 43
03300		IF((DIF(-1)-DIF(0))*(DIF(0)-DIF(1)).LT.0) GOTO 45
03400	43	CALL ASD(1,'DIF-1',DIF(-1))
03401		CALL ASD(1,'DIF 0',DIF(0))
03402		CALL ASD(1,'DIF+1',DIF(1))
03405		CALL ASD(2,'K',K)
03410		GOTO 60
03415	45	CALL ASD(3,'RO',RO)
03600	60	CONTINUE
03650		RETURN
03700		END